package com.denlaku.longan.controller;

import com.denlaku.longan.http.Return;
import com.denlaku.longan.qo.DataPermQuery;
import com.denlaku.longan.qo.Query;
import com.denlaku.longan.vo.DataTagSet;
import com.denlaku.longan.vo.PageBy;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.List;

/**
 * @author tianx
 */
@RequestMapping("/api/data-tag-set")
public interface DataTagSetController {
    /**
     * 新增数据标签集
     *
     * @param dataTagSet 数据标签集
     * @return 响应对象
     */
    @PostMapping("/add")
    Return<Void> add(@RequestBody DataTagSet dataTagSet);

    /**
     * 修改数据标签集
     *
     * @param dataTagSet 数据标签集
     * @return 响应对象
     */
    @PostMapping("/update")
    Return<Void> update(@RequestBody DataTagSet dataTagSet);

    /**
     * 获取数据标签集
     *
     * @param query 查询参数
     * @return 数据标签集
     */
    @PostMapping("/get")
    Return<DataTagSet> get(Query query);

    /**
     * 分页查询数据标签集
     *
     * @param query 查询参数
     * @param pageBy 分页参数
     * @return 数据标签集列表
     */
    @PostMapping("/page-list")
    Return<List<DataTagSet>> pageList(@RequestBody DataPermQuery query, PageBy pageBy);

    /**
     * 搜索数据标签集
     *
     * @param query 查询参数
     * @return 数据标签集列表
     */
    @PostMapping("/search")
    Return<List<DataTagSet>> search(@RequestBody DataPermQuery query);

    /**
     * 删除数据标签集
     *
     * @param query 查询参数
     * @return 响应对象
     */
    @PostMapping("/delete")
    Return<Void> delete(@RequestBody DataPermQuery query);
}
